package originatorV3;

import command.Command;

import originatorV2.SaisirOriginator;
import caretakerV3.GestionDefaire;
import mementoV2.Memento;
import mementoV2.SaisirMemento;
import mementoV3.MementoV3;
import mementoV3.SaisirMementoV3;

public class SaisirOriginatorV3 implements OriginatorV3 {

	public SaisirOriginatorV3(GestionDefaire gestion, Command saisir) {
		super();
		this.gestion = gestion;
		this.saisir = saisir;
	}

	private GestionDefaire gestion;

	private Command saisir;

	private String etat;

	@Override
	public void execute() {
		((SaisirOriginator)this.saisir).execute();
		etat = ((SaisirOriginator)this.saisir).getEtat();
		MementoV3 m = new SaisirMementoV3(this, etat);
		gestion.sauvegarder(m);
	}

	@Override
	public void setMemento(MementoV3 m) {
		String etat = ((SaisirMementoV3) m).get_etat();		
		Memento m2 = new SaisirMemento((SaisirOriginator) this.saisir, etat);
		((SaisirOriginator) this.saisir).setMemento(m2);
	}

}
